home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 4 / Amiga Tools 4.iso / tools / mail-tools / thor / thor_2.22 / thor.lha / rexx / BBSRead / CheckDataBase.br < prev    next >
Text File  |  1995-12-18  |  2KB  |  88 lines

  1. /* CheckDataBase.br
  2.  *
  3.  * Script by: Eivind Nordseth, Ultima Thule Software.
  4.  *
  5.  * Improved by: Magne Østlyngen
  6.  *
  7.  */
  8.  
  9.     parse arg argument
  10.  
  11.     template = 'BBSNAME/A,CONFNAME,DELETE/S'
  12.  
  13.     if (argument = '' | argument = '?') then 
  14.     do
  15.         say '$VER: CheckDataBase 3.2m (28.8.95)'
  16.         say 'Checks the messages in one or ALL BBSes. If the DELETE switch is used will '
  17.         say 'all messages which are impossible to read be marked as deleted.'
  18.         say 'Template:' template
  19.         exit
  20.     end
  21.  
  22.     if ~show('p','BBSREAD') then do;address command
  23.     "run >nil: `GetEnv THOR/THORPath`bin/LoadBBSRead";"WaitForPort BBSREAD";end
  24.  
  25.     address BBSREAD
  26.  
  27.     READARGS template ARGS CMDLINE argument
  28.     if rc~=0 then do
  29.         say BBSREAD.LASTERROR
  30.         exit 0
  31.     end
  32.  
  33.     options failat 31 
  34.  
  35.     if upper(ARGS.BBSNAME) = "ALL" then do
  36.         GETBBSLIST stem BBSLIST 
  37.         if rc~=0 then do
  38.             say BBSREAD.LASTERROR
  39.             exit 0
  40.         end
  41.     end
  42.     else do
  43.         BBSLIST.1 = ARGS.BBSNAME
  44.         BBSLIST.COUNT = 1
  45.     end
  46.  
  47.     do n=1 to BBSLIST.COUNT
  48.         say 'Checking bbs:' BBSLIST.n
  49.  
  50.         if symbol("ARGS.CONFNAME")~="VAR" then do
  51.             GETCONFLIST stem CONFLIST '"'||BBSLIST.n||'"'
  52.             if rc~=0 then do
  53.                 say BBSREAD.LASTERROR
  54.                 exit 0
  55.             end
  56.         end
  57.         else do
  58.             CONFLIST.1 = ARGS.CONFNAME
  59.             CONFLIST.COUNT = 1
  60.         end
  61.  
  62.         do i=1 to CONFLIST.COUNT
  63.             say ' Checking conference:' CONFLIST.i
  64.  
  65.             GETCONFDATA '"'||BBSLIST.n||'"' '"'||CONFLIST.i||'"' stem CONFDATA
  66.             if rc~=0 then do
  67.                 say BBSREAD.LASTERROR
  68.                 exit 0
  69.             end
  70.  
  71.             do k = CONFDATA.FIRSTMSG to CONFDATA.LASTMSG
  72.                 READBRMESSAGE '"'||BBSLIST.n||'"' '"'||CONFLIST.i||'"' k datastem DATA headstem HEAD textstem TEXT 
  73.                 if rc~=0 then do
  74.                     Say '  Error reading message' k ':' BBSREAD.LASTERROR
  75.                     if ARGS.DELETE~=0 then do
  76.                         say '  Marking message as deleted.'
  77.  
  78.                         UPDATEBRMESSAGE '"'||BBSLIST.n||'"' '"'||CONFLIST.i||'"' k SETDELETED
  79.                         if rc~=0 then
  80.                             say '  Unable to mark message as deleted:' BBSREAD.LASTERROR
  81.                     end
  82.                 end
  83.             end
  84.         end
  85.     end
  86.  
  87.     exit 0
  88.